#include <iostream>
using namespace std;

// sort 使用快速法升序排序字符串
void sort(char *str[4])
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = i; j < 4; j++)
        {
            if (str[i][0] > str[j][0])
            { // 升序排序
                char tmp[10];
                strcpy(tmp, str[i]);
                strcpy(str[i], str[j]);
                strcpy(str[j], tmp);
            }
        }
    }
}

int main()
{
    cout << endl
         << "学号：3170608043，姓名：石英钰" << endl
         << endl
         << "Features: 形式参数中利用指针数组接受多个字符串，并对字符串进行排序。主函数中，利用多重指针输出排序后的字符串" << endl
         << endl;
    char str[4][10] = {"Fortran", "C/c++", "Pascal", "Basic"};
    char *p[4];
    for (int i = 0; i < 4; i++)
    {
        p[i] = str[i]; // 指针赋值
    }
    sort(p); // 排序

    char **p2[4];
    p2[0]=&p[0];
    p2[1]=&p[1];
    p2[2]=&p[2];
    p2[3]=&p[3];

    char ***p3[4];
    p3[0]=&p2[0];
    p3[1]=&p2[1];
    p3[2]=&p2[2];
    p3[3]=&p2[3];

    char ****p4[4];
    p4[0]=&p3[0];
    p4[1]=&p3[1];
    p4[2]=&p3[2];
    p4[3]=&p3[3];
    for (int i = 0; i < 4; i++)
    {
        cout << ***p4[i]; // 多重指针输出
        cout << endl;
    }
}
